package org.csu.small.service;

import org.csu.small.common.UniformResponse;
import org.csu.small.entity.Cart;
import org.csu.small.vo.CartVO;


public interface ICartService {

    /**
     * 添加商品到购物车
     * @param userId
     * @param productId
     * @param quantity
     * @return
     */
    UniformResponse<CartVO> add(Integer userId, Integer productId, Integer quantity);

    /**
     * 更新购物车商品数量
     * @param userId
     * @param productId
     * @param quantity
     * @return
     */
    UniformResponse<CartVO> updateCartNum(Integer userId, Integer productId, Integer quantity);



    /**
     * 删除多选，
     * @param userId
     * @param productIds 以","分割多个id
     * @return
     */
    UniformResponse<CartVO> deleteByProductIds(Integer userId, String productIds);

    /**
     * 选中状态切换
     * @param userId
     * @param productId
     * @param status
     * @return
     */
    UniformResponse<CartVO> selectOrUnSelect(Integer userId, Integer productId, Integer status);

    UniformResponse<CartVO> selectOrUnSelectAll(Integer userId, Integer status);

    /**
     * 获取购物车中商品数量
     * @param userId
     * @return
     */
    UniformResponse<Integer> getCartProductCount(Integer userId);

    /**
     * 获取购物车列表
     * @param userId
     * @return
     */
    UniformResponse<CartVO> getCartList(Integer userId);

}
